`ifndef NEW_CASE_SV
`define NEW_CASE_SV

class new_case_seq extends my_sequence;

	extern function new(string name = "new_case_seq");
	extern virtual task body();

	`uvm_object_utils(new_case_seq)
endclass: new_case_seq

function new_case_seq::new(string name = "new_case_seq");
	super.new(name);
endfunction: new

task new_case_seq::body();
	repeat(10000) begin
		`uvm_do_with(my_tr, {my_tr.par_err == 0;})
	end
	#100;
endtask: body

class new_case extends base_test;

	extern function new(string name = "base_test", uvm_component parent=null);
	extern virtual function void build_phase(uvm_phase phase);
	
	`uvm_component_utils(new_case)
endclass: new_case

function new_case::new(string name = "base_test", uvm_component parent=null);
    super.new(name, parent);
endfunction: new

function void new_case::build_phase(uvm_phase phase);
	super.build_phase(phase);
	uvm_config_db #(uvm_object_wrapper)::set(
		this,
		"env.i_agt0.sqr.main_phase",
		"default_sequence",
		new_case_seq::type_id::get()
	);
    uvm_config_db #(uvm_object_wrapper)::set(
		this,
		"env.i_agt1.sqr.main_phase",
		"default_sequence",
		new_case_seq::type_id::get()
	);

endfunction: build_phase

`endif
